namespace Gltf
{
    public class ImageSpec : NamedObject
    {
        public static string TypeName = "Image";

        /**
         * @brief Known values for The image's media type. This field **MUST** be
         * defined when `bufferView` is defined.
         */
      public  struct MimeType
        {
            public static string image_jpeg = "image/jpeg";

            public static string image_png = "image/png";
        };

        /**
         * @brief The URI (or IRI) of the image.
         *
         * Relative paths are relative to the current glTF asset.  Instead of
         * referencing an external file, this field **MAY** contain a `data:`-URI.
         * This field **MUST NOT** be defined when `bufferView` is defined.
         */
        public string uri;

        /**
         * @brief The image's media type. This field **MUST** be defined when
         * `bufferView` is defined.
         *
         * Known values are defined in {@link MimeType}.
         *
         */
        public string mimeType;

        /**
         * @brief The index of the bufferView that contains the image. This field
         * **MUST NOT** be defined when `uri` is defined.
         */
        public int bufferView = -1;
    }
}